MakeTorso

導入

v4.0

カテゴリ

キャラクタ リギング

詳細

スパイン、左肩、右肩、ヒップで構成される胴体のリグを作成します。 胴体は胸、腰、上部ボディのコントロールで組み立てられます。

胴体は、10 または 11 のガイド オブジェクトのコレクションによって定義されます。 はじめの 4 つのガイド オブジェクトがスパインのシェイプを決定します。 次の 6 つのオブジェクトが胴体の側部を定義します(左脚のベース、左肩のベース、左肩の先端、右脚のベース、右肩のベース、右肩の先端)。 11 番目のガイド オブジェクトは、胸のボーンを作成する際に追加することができます。 ヒップ アイコンは脚のベースに配置する股関節に作成され、ヒップの最上部はスパインの最下部に位置づけられます。 1 ボーンの肩は、肩の付け根と先端のガイド オブジェクトによって作成されます。

尻尾を作成するには、MakeTorso を使用してスパインのベース コントロール オブジェクト(ガイド オブジェクト群の 1 番目のオブジェクト)を複製します。 尻尾を作成するには、最低限 3 個のスパイン ベースを複製する必要があります(例を参照)。

スクリプト構文

oTorso = MakeTorso( Parent, [NbDivisions], [StretchType], GuideObjectCollection, [ControlType], [SpineType], Sliders, [ShadowType], [ShadowParent], [NegativeScale] );

戻り値

Torso JScript オブジェクトを戻します。

パラメータ

パラメータ タイプ 詳細
Parent 文字列 胴体の親となるオブジェクト。 通常はグローバル SRT です。
NbDivisions Integer スパインの分割数。 椎の数は、NbDivisions+1 になります。

デフォルト値: 2

StretchType Integer スパインが胸のコントローラに追従してストレッチするか、一定の長さを保持するかを指定します。

デフォルト値: 0

指定可能な値:

説明:

0 スパインのスケールスライダに応じてストレッチします。
1 胸のコントローラに合わせてストレッチします。
GuideObjectCollection 文字列 10 個または 11 個のガイド オブジェクトのコレクション(11 番目のガイド オブジェクトは胸のボーンのターゲットとして使用)。 はじめの 4 つのボーン(1)スパイン ベース、2)スパイン ベースの深度、3)スパインの終端の深度、4)スパインの終端)は、スパイン パスを定義します。次の 3 つは、胴体の左側の外肢を定義します(5)左脚の開始、6)左肩の開始、7)左肩の終端)。さらに次の 3 つは、胴体の右側の外肢を定義します(8)右脚の開始、9)右肩の開始、10)右肩の終端)。 11 番目のオブジェクトはオプションで、胸のボーンの位置を表します。 MakeTorso に含めた場合、この位置の終端にスパインを描画して、その位置とスパインの終端(4 番目のアイテム)の間に胸のボーンを作成します。
ControlType Integer 胸、ヒップ、上部ボディをコントロールするアイコンのタイプ。

デフォルト値: 0

指定可能な値:

説明:

0 四角形のコントローラを使用
1 立方体のコントローラを使用
SpineType Integer 使用する頭部アセンブリのスタイル。

デフォルト値: 0

指定可能な値:

説明:

0 ポリゴンの分割があるクォータニオンのスパインを作成します。
1 インプリシットの分割があるクォータニオンのスパインを作成します。
2 スケルトンスパインを作成します。
Sliders 文字列 スパイン パラメータを配置するスライダの PPG。 何も指定しないと、スパイン カーブにスライダ ページが追加されます。
ShadowType Integer アタッチするシャドウ リグのタイプ。 シャドウ リグは、アニメーションを転送または再マップするために使用します。

デフォルト値: 0

指定可能な値:

説明:

0 影無し
1 SI|3Dスケルトンのシャドウリグ
2 XSIスケルトンのシャドウリグ
3 ヌルのシャドウリグ
4 ボックスのシャドウリグ
ShadowParent 文字列 シャドウ リグ階層の親。 空の場合には、シャドウ リグは作成されません。
NegativeScale Integer 肩の負のスケーリング。 負のスケーリングは、左と右の肩を対称に操作する場合に便利です。

デフォルト値: 0

指定可能な値:

説明:

0 負のスケーリングなし
1 右肩に負のスケーリング
2 左肩に負のスケーリング

JScript の例

/*
        This script builds a collection of torso guide objects
        places them and constructs a torso using the makeTorso
        command.
*/
var guidecoll = new ActiveXObject("XSI.Collection");
guidecoll.Add( GetPrim("Null", "Guide_SpineBase") ); 
guidecoll.Add( GetPrim("Null", "Guide_SpineDepth") ); 
guidecoll.Add( GetPrim("Null", "Guide_SpineEndDepth") ); 
guidecoll.Add( GetPrim("Null", "Guide_SpineEnd") ); 
guidecoll.Add( GetPrim("Null", "Guide_LLegStart") ); 
guidecoll.Add( GetPrim("Null", "Guide_LShoulderStart") ); 
guidecoll.Add( GetPrim("Null", "Guide_LShoulderEnd") ); 
guidecoll.Add( GetPrim("Null", "Guide_RLegStart") ); 
guidecoll.Add( GetPrim("Null", "Guide_RShoulderStart") ); 
guidecoll.Add( GetPrim("Null", "Guide_RShoulderEnd") ); 
var lXfm = guidecoll(0).Kinematics.Global.Transform;
lXfm.SetTranslationFromValues(0,0,0);
guidecoll(0).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,2,0);
guidecoll(1).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,4,0);
guidecoll(2).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,6,0);
guidecoll(3).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2,0,0);
guidecoll(4).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2,6,0);
guidecoll(5).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(4,6,0);
guidecoll(6).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(-2,0,0);
guidecoll(7).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(-2,6,0);
guidecoll(8).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(-4,6,0);
guidecoll(9).Kinematics.Global.Transform = lXfm;
//
// Duplicate the spine base guide to generate a tail.
// At least 3 duplicates are required.
//
var tail0 = GetPrim("Null", "Guide_SpineBase1");  
var tail1 = GetPrim("Null", "Guide_SpineBase2");  
var tail2 = GetPrim("Null", "Guide_SpineBase3");  
lXfm.SetTranslationFromValues(0,0,-2); 
tail0.Kinematics.Global.Transform = lXfm; 
lXfm.SetTranslationFromValues(0,0,-4); 
tail1.Kinematics.Global.Transform = lXfm; 
lXfm.SetTranslationFromValues(0,0,-6); 
tail2.Kinematics.Global.Transform = lXfm; 
//
// Make the torso
// 
var Torso= MakeTorso( ActiveSceneRoot,  //parent
                         3,                     //# vertebrae
                         0,                     //stretch using spine scale
                         guidecoll,             //guide objects
                         1,                     //cube controls
                         0);                    //quat spine with polygon divs
DumpTorso(Torso);
function DumpTorso(inTorso)
{
        logmessage("Data in the returned torso object:");
        logmessage("Parent         : "+ inTorso.Parent);
        logmessage("Spine Curve    : "+ inTorso.Spine.Curve);
        logmessage("Hip Bone       : "+ inTorso.HipBone);
        logmessage("Right Effector : "+ inTorso.REff);
        logmessage("Left Effector  : "+ inTorso.LEff);
        logmessage("Right Skeleton : "+ inTorso.RSkel);
        logmessage("Left Skeleton  : "+ inTorso.LSkel);
        logmessage("Spine Vertebrae: "+ inTorso.Spine.Vertebra);
        logmessage("Upper Body     : "+ inTorso.UpperBody);
        logmessage("Hip            : "+ inTorso.Hip);
        logmessage("Chest          : "+ inTorso.Chest);
        logmessage("Hidden         : "+ inTorso.Hidden);
        logmessage("Envelope       : "+ inTorso.Envelope);
        logmessage("Shadows        : "+ inTorso.Shadows);
}
//results from running this script:
//INFO : "Data in the returned torso object:"
//INFO : "Parent         : undefined"
//INFO : "Spine Curve    : crvlist"
//INFO : "Hip Bone       : Hip"
//INFO : "Right Effector : RShoulderRoot"
//INFO : "Left Effector  : LShoulderRoot"
//INFO : "Right Skeleton : RShoulder,RShoulderEff,RShoulderRoot"
//INFO : "Left Skeleton  : LShoulder,LShoulderEff,LShoulderRoot"
//INFO : "Spine Vertebrae: Vertebra,Vertebra1,Vertebra2"
//INFO : "Upper Body     : UpperBody"
//INFO : "Hip            : Hip1"
//INFO : "Chest          : Chest"
//INFO : "Hidden         : SpineStart,SpineEnd,RShoulderRoot,LShoulderRoot"
//INFO : "Envelope       : Hip,RShoulderEff,LShoulderEff"
//INFO : "Shadows        : undefined"

関連項目

MakeSpine MakeArm MakeLeg MakeDogLeg MakeHead